﻿/*
Uploadify v1.6.2
Copyright (C) 2009 by Ronnie Garcia
Co-developed by Travis Nickels

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

var flashVer = -1; if (navigator.plugins != null && navigator.plugins.length > 0) { if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) { var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : ""; var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description; var descArray = flashDescription.split(" "); var tempArrayMajor = descArray[2].split("."); var versionMajor = tempArrayMajor[0]; var versionMinor = tempArrayMajor[1]; var versionRevision = descArray[3]; if (versionRevision == "") { versionRevision = descArray[4] } if (versionRevision[0] == "d") { versionRevision = versionRevision.substring(1) } else { if (versionRevision[0] == "r") { ersionRevision = versionRevision.substring(1); if (versionRevision.indexOf("d") > 0) { versionRevision = versionRevision.substring(0, versionRevision.indexOf("d")) } } } var flashVer = versionMajor + "." + versionMinor + "." + versionRevision } } else { if ($.browser.msie) { var version; var axo; var e; try { axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"); version = axo.GetVariable("$version") } catch (e) { } flashVer = version.replace("WIN ", "").replace(",", ".") } } flashVer = flashVer.split(".")[0]; if (jQuery) { (function (a) { a.extend(a.fn, { fileUpload: function (b) { if (flashVer >= 9) { a(this).each(function () { settings = a.extend({ uploader: "uploader.swf", script: "uploader.php", folder: "", height: 30, width: 110, cancelImg: "cancel.png", wmode: "opaque", scriptAccess: "sameDomain", fileDataName: "Filedata", displayData: "percentage", onInit: function () { }, onSelect: function () { }, onCheck: function () { }, onCancel: function () { }, onError: function () { }, onProgress: function () { }, onComplete: function () { } }, b); var d = location.pathname; d = d.split("/"); d.pop(); d = d.join("/") + "/"; var f = "&pagepath=" + d; if (settings.buttonImg) { f += "&buttonImg=" + escape(settings.buttonImg) } if (settings.buttonText) { f += "&buttonText=" + escape(settings.buttonText) } if (settings.rollover) { f += "&rollover=true" } f += "&script=" + settings.script; f += "&folder=" + escape(settings.folder); if (settings.scriptData) { var g = ""; for (var c in settings.scriptData) { g += "&" + c + "=" + settings.scriptData[c] } f += "&scriptData=" + escape(g) } f += "&btnWidth=" + settings.width; f += "&btnHeight=" + settings.height; f += "&wmode=" + settings.wmode; if (settings.hideButton) { f += "&hideButton=true" } if (settings.fileDesc) { f += "&fileDesc=" + settings.fileDesc + "&fileExt=" + settings.fileExt } if (settings.multi) { f += "&multi=true" } if (settings.auto) { f += "&auto=true" } if (settings.sizeLimit) { f += "&sizeLimit=" + settings.sizeLimit } if (settings.simUploadLimit) { f += "&simUploadLimit=" + settings.simUploadLimit } if (settings.checkScript) { f += "&checkScript=" + settings.checkScript } if (settings.fileDataName) { f += "&fileDataName=" + settings.fileDataName } if (a.browser.msie) { flashElement = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + settings.width + '" height="' + settings.height + '" id="' + a(this).attr("id") + 'Uploader" class="fileUploaderBtn"><param name="movie" value="' + settings.uploader + "?fileUploadID=" + a(this).attr("id") + f + '" /><param name="quality" value="high" /><param name="wmode" value="' + settings.wmode + '" /><param name="allowScriptAccess" value="' + settings.scriptAccess + '"><param name="swfversion" value="9.0.0.0" /></object>' } else { flashElement = '<embed src="' + settings.uploader + "?fileUploadID=" + a(this).attr("id") + f + '" quality="high" width="' + settings.width + '" height="' + settings.height + '" id="' + a(this).attr("id") + 'Uploader" class="fileUploaderBtn" name="' + a(this).attr("id") + 'Uploader" allowScriptAccess="' + settings.scriptAccess + '" wmode="' + settings.wmode + '" type="application/x-shockwave-flash" />' } if (settings.onInit() !== false) { a(this).css("display", "none"); if (a.browser.msie) { a(this).after('<div id="' + a(this).attr("id") + 'Uploader"></div>'); document.getElementById(a(this).attr("id") + "Uploader").outerHTML = flashElement } else { a(this).after(flashElement) } a("#" + a(this).attr("id") + "Uploader").after('<div id="' + a(this).attr("id") + 'Queue" class="fileUploadQueue"></div>') } a(this).bind("rfuSelect", { action: settings.onSelect }, function (j, h, i) { if (j.data.action(j, h, i) !== false) { var k = Math.round(i.size / 1024 * 100) * 0.01; var l = "KB"; if (k > 1000) { k = Math.round(k * 0.001 * 100) * 0.01; l = "MB" } var m = k.toString().split("."); if (m.length > 1) { k = m[0] + "." + m[1].substr(0, 2) } else { k = m[0] } if (i.name.length > 20) { fileName = i.name.substr(0, 20) + "..." } else { fileName = i.name } a("#" + a(this).attr("id") + "Queue").append('<div id="' + a(this).attr("id") + h + '" class="fileUploadQueueItem"><div class="cancel"><a href="javascript:$(\'#' + a(this).attr("id") + "').fileUploadCancel('" + h + '\')"><img src="' + settings.cancelImg + '" border="0" /></a></div><span class="fileName">' + fileName + " (" + k + l + ')</span><span class="percentage">&nbsp;</span><div class="fileUploadProgress" style="width: 100%;"><div id="' + a(this).attr("id") + h + 'ProgressBar" class="fileUploadProgressBar" style="width: 1px; height: 3px;"></div></div></div>') } }); if (typeof (settings.onSelectOnce) == "function") { a(this).bind("rfuSelectOnce", settings.onSelectOnce) } a(this).bind("rfuCheckExist", { action: settings.onCheck }, function (m, l, j, k, o) { var i = new Object(); i.folder = d + k; for (var h in j) { i[h] = j[h]; if (o) { var n = h } } a.post(l, i, function (r) { for (var p in r) { if (m.data.action(m, l, j, k, o) !== false) { var q = confirm("Do you want to replace the file '" + r[p] + "'?"); if (!q) { document.getElementById(a(m.target).attr("id") + "Uploader").cancelFileUpload(p) } } } if (o) { document.getElementById(a(m.target).attr("id") + "Uploader").startFileUpload(n, true) } else { document.getElementById(a(m.target).attr("id") + "Uploader").startFileUpload(null, true) } }, "json") }); a(this).bind("rfuCancel", { action: settings.onCancel }, function (j, h, i, k) { if (j.data.action(j, h, i, k) !== false) { a("#" + a(this).attr("id") + h).fadeOut(250, function () { a("#" + a(this).attr("id") + h).remove() }) } }); a(this).bind("rfuClearQueue", { action: settings.onClearQueue }, function () { if (event.data.action() !== false) { a("#" + a(this).attr("id") + "Queue").contents().fadeOut(250, function () { a("#" + a(this).attr("id") + "Queue").empty() }) } }); a(this).bind("rfuError", { action: settings.onError }, function (k, h, j, i) { if (k.data.action(k, h, j, i) !== false) { a("#" + a(this).attr("id") + h + " .fileName").text(i.type + " Error - " + j.name); a("#" + a(this).attr("id") + h).css({ border: "3px solid #FBCBBC", "background-color": "#FDE5DD" }) } }); a(this).bind("rfuProgress", { action: settings.onProgress, toDisplay: settings.displayData }, function (j, h, i, k) { if (j.data.action(j, h, i, k) !== false) { a("#" + a(this).attr("id") + h + "ProgressBar").css("width", k.percentage + "%"); if (j.data.toDisplay == "percentage") { displayData = " - " + k.percentage + "%" } if (j.data.toDisplay == "speed") { displayData = " - " + k.speed + "KB/s" } if (j.data.toDisplay == null) { displayData = " " } a("#" + a(this).attr("id") + h + " .percentage").text(displayData) } }); a(this).bind("rfuComplete", { action: settings.onComplete }, function (k, h, j, i, l) { if (k.data.action(k, h, j, unescape(i), l) !== false) { a("#" + a(this).attr("id") + h).fadeOut(250, function () { a("#" + a(this).attr("id") + h).remove() }); a("#" + a(this).attr("id") + h + " .percentage").text(" - Completed") } }); if (typeof (settings.onAllComplete) == "function") { a(this).bind("rfuAllComplete", settings.onAllComplete) } }) } }, fileUploadSettings: function (b, c) { a(this).each(function () { document.getElementById(a(this).attr("id") + "Uploader").updateSettings(b, c) }) }, fileUploadStart: function (b) { a(this).each(function () { document.getElementById(a(this).attr("id") + "Uploader").startFileUpload(b, false) }) }, fileUploadCancel: function (b) { a(this).each(function () { document.getElementById(a(this).attr("id") + "Uploader").cancelFileUpload(b) }) }, fileUploadClearQueue: function () { a(this).each(function () { document.getElementById(a(this).attr("id") + "Uploader").clearFileUploadQueue() }) } }) })(jQuery) };